The aspects of the present disclosure relate generally to systems that enable sharing of information between users of computing devices, and in particular to cooperative sharing of resources in a desktop environment, including applications, windows, files and information, among different users. Desktop sharing systems do not support multiple parties operating together so that the different parties having access to a shared desktop would be able to bring their own windows to the shared desktop. Also, windows appearing on top of other windows on the shared desktop will disable different parties from working with different windows at the same time if some of the relevant windows are occluded by others. These problems with desktop sharing systems disable multiple user cases where a user, who is currently not sharing his own desktop, would need to share one of his windows to the other parties e.g. because it contains valuable information to the other parties or where the parties would need to be able to collaborate or cooperate using a number of windows or applications. It would be advantageous to have a system where multiple users could share and/or interact with one or more windows or comparable resources, substantially simultaneously in the same desktop.
In some desktop sharing systems it is also difficult or even not possible to control and verify which windows on the desktop a guest user is allowed to see. This can be a problem in situations where a user would like to allow or enable a guest user, for example a technical support person, to see some but not all of the windows that are open and/or to verify which windows the guest user will be able to see. It would be advantageous to have a system that makes it possible and efficient to control and visually verify which windows are shared with a guest user.
Certain desktop sharing and windowing applications will support multiple users simultaneously sharing windows, generally referred to resources herein, that are presented on a desktop, with a fixed, limited size. However, in a workspace with a limited size it is difficult to establish a layout that the multiple users are comfortable working with, which can depend upon, for example visibility, accessibility and relative positioning of the resources on the desktop such that the positioning supports workflow. In order for two or more users to be able to work on different resources on the shared desktop, the resources generally need to occupy different regions of the available desktop space. This generally means that the individual dimensions of the different resources will have to be reduced to less than half of the available screen space to remain fully visible. It would be advantageous if multiple users working on different resources at the same time could do so without needing to limit the size of the resources and if even large numbers of resources could be laid out so that the layout of resources is comfortable for multiple users to work with.
For instance, in the aforementioned desktop sharing systems, it can also be difficult to maintain a layout where resources such as windows do not overlap, or establish layouts with spatially stable relationships between them. While increasing the size or display resolution of the physical display, or adding multiple monitors, may aim to address this problem, larger or additional monitors are generally not able to compensate for the increasing number of (active) resources on the desktop. If more windows are continually opened, the amount of open windows will eventually crowd the available display space. As a result, these systems typically allow users to work with only one window at a time, since allowing users to work with more than one window would cause space contention when two or more users try to use different windows that overlap on the desktop. It would be advantageous for multiple users to have access to a shared environment that contains more than one, or a number of resources, without having to negotiate their use of screen real estate.
Because users are customarily positioned substantially in front of their display device, in terms of viewing direction, users will tend to position their active windows approximately in the middle of the screen of the display device (horizontally) so that they do not have to turn their head or body to look at the window(s) they are working with. However, in the typical desktop sharing system, all users share the same view. This means that when two or more users are working on different resources on the shared desktop, it may not be possible or practical for every user to position the resource they are working on in the center region of the screen. It would be advantageous if all users could position the resource they are working on in the center region of the screen. The terms “screen”, “display” or “display area” is generally intended to include the area of a display device that can be used to present resources, as is generally described herein.
In a multiple user environment, different users may be working on a shared set of resources, but they may not have a sense of a shared context of work or cooperation with other team members, which can make the coordination of activities difficult. For example, in systems where multiple users are working on a shared set of documents, but where the users work with the documents in the context of their own resources, the users will have minimal, if any, awareness of the working context of the other users. It would be advantageous for a user to be able to quickly see what shared resources other users are and have been using, as well as how those resources are and have been arranged, even when not actively being used by themselves.
Remote desktop systems are frequently used by computing device users to share a desktop between multiple devices. However, these systems suffer from the problem that because different devices are frequently used in different working contexts (e.g. work or home) where different windows will also frequently be used, the stacking order of windows will frequently change whenever the user switches between different devices. This will generally make transitioning between working contexts more difficult as the user will have to re-establish the working context whenever they switch between devices and working contexts. It would be advantageous to use different devices to access different windows in a single desktop without affecting the layout of windows in the shared desktop.
Windows usually overlap in desktop sharing systems and the layout or stacking order of windows can change when a window is activated, which can include a window getting focus or moving to the foreground. Thus, when a window is activated, also referred to as an active window, the layout or order of the other windows on the display relative to the active window, can change, potentially reducing visibility of window regions that were previously visible. Similarly, in desktop sharing systems, the creation of new windows can obstruct another user's view to other windows that they were working on as the new windows that have been created appear on top of other windows. It would be advantageous to have a desktop space in which resources do not have to overlap in order to fit in the desktop space, regardless of their sizes, but in which the resources can be arranged in a spatially stable and non-overlapping manner instead. Such a desktop space would: be easier for its users to navigate because they will be able to employ their spatial memory more effectively to locate specific resources in the desktop space; allow its users to work with windows that cover much of the display area without losing context of work; and support more efficient cooperation between multiple users as users' resources can be arranged so that they will not be occluded by other users' resources.
In many traditional systems such as the MICROSOFT WINDOWS 7™ operating system windows can be minimized, which hides the window in the taskbar. In these systems, minimizing is a frequent operation performed to hide items not needed anymore or when a user thinks that a window is on the way. This can be problematic in a multi-user context where minimizing a window may have adverse effect on other users who may want to continue working with the window. It would be advantageous to have a system in which windows that a user is working on will not be frequently hidden by activities of another user.
Instant messaging systems, chat rooms and other communication systems such as the channels on Internet Relay Chat (IRC) or Skype™ are frequently used for cooperation and collaboration. One of the limitations of such systems is that the participating users will generally have their own, individual copies of the resources being worked on. As an example, it is common that participants post links or documents that each participant will have to open separately to access some resource that is to be shared between the participants. It is also possible that the links to documents will scroll in the window with more text entries being introduced in the window so that the user may have to scroll the chat window to locate the address or link that will open the shared resource. This is inconvenient for the sender, who might first have to make some resource (e.g. a snippet of programming code) available online and then separately post the URL to that resource to others in the chat room, and after which may not be able to effectively monitor who actually looks at the resource. This can also be inconvenient for the respondents who have to download or open the document to see what the sender wants them to see. It would be advantageous for different parties to be able to share live resources in a shared space so anyone with access rights in the environment can access and interact with it effortlessly.
Certain social systems allow users to promote a resource by, for example “liking” a resource. However, this requires explicit action on part of the user and it may not be possible to monitor interest in an activity on a resource, e.g. visits or the amount of time spent on the resource by users, actively as the resource is accessed or acted upon. For instance, it may be difficult for a FACEBOOK™ user to see what shared resources their friends, currently also logged in to FACEBOOK, are viewing or acting upon. It would be advantageous for a user to be able to directly observe it when a resource is accessed, visited, spent time on, or acted upon, and to provide an indication of the amount of interest in or activity on a resource, to the user.
In a desktop type of sharing solution, the space is shared actively by the host. When the host quits, the session is terminated. It would be advantageous to be able to use a server to host a session that does not terminate or to have a distributed session that does not end until all the users have quit.
Accordingly, it would be desirable to provide a system that addresses at least some of the problems identified above.